ARD2  1.00 for Rev B. Hardware
Airbag Reference Demonstrator using MPC5604P
UTILS.h
Go to the documentation of this file.
00001 
00019 #ifndef _UTILS_H
00020 #define _UTILS_H
00021 
00022 /*
00023  **************************************************************
00024  * Defines, Macros and Typedefs 
00025  **************************************************************/
00026 /*** Constant Macros ***/
00027 /* Default Yes and No defines */
00028 #ifndef TRUE
00029  #define TRUE (1u)
00030 #endif
00031 #ifndef CLEAR
00032  #define CLEAR (0u)
00033 #endif
00034 #ifndef BITS_IN_NIBBLE
00035  #define BITS_IN_NIBBLE (4u)
00036 #endif
00037 #ifndef BITS_IN_BYTE
00038  #define BITS_IN_BYTE (8u)
00039 #endif
00040 #ifndef BITS_IN_16
00041  #define BITS_IN_16 (16u)
00042 #endif
00043 #ifndef BITS_IN_24
00044  #define BITS_IN_24 (24u)
00045 #endif
00046 #ifndef BYTES_IN_16
00047  #define BYTES_IN_16  (2u)
00048 #endif
00049 #ifndef BYTES_IN_32
00050  #define BYTES_IN_32  (4u)
00051 #endif
00052 #ifndef MSB_8_BITS
00053  #define MSB_8_BITS  (0x80u)
00054 #endif
00055 #ifndef MSB_MINUS_ONE
00056  #define MSB_MINUS_ONE  (0x07u)
00057 #endif
00058 
00059 #ifndef BIT_DEFINITION
00060  #define BIT_DEFINITION
00061  #define BIT0  (1u << 0u)
00062  #define BIT1  (1u << 1u)
00063  #define BIT2  (1u << 2u)
00064  #define BIT3  (1u << 3u)
00065  #define BIT4  (1u << 4u)
00066  #define BIT5  (1u << 5u)
00067  #define BIT6  (1u << 6u)
00068  #define BIT7  (1u << 7u)
00069  #define BIT8  (1u << 8u)
00070  #define BIT9  (1u << 9u)
00071  #define BIT10 (1u << 10)
00072  #define BIT11 (1u << 11)
00073  #define BIT12 (1u << 12)
00074  #define BIT13 (1u << 13)
00075  #define BIT14 (1u << 14)
00076  #define BIT15 (1u << 15)
00077  #define BIT16 (1u << 16)
00078  #define BIT17 (1u << 17)
00079  #define BIT18 (1u << 18)
00080  #define BIT19 (1u << 19)
00081  #define BIT20 (1u << 20)
00082  #define BIT21 (1u << 21)
00083  #define BIT22 (1u << 22)
00084  #define BIT23 (1u << 23)
00085  #define BIT24 (1u << 24)
00086  #define BIT25 (1u << 25)
00087  #define BIT26 (1u << 26)
00088  #define BIT27 (1u << 27)
00089  #define BIT28 (1u << 28)
00090  #define BIT29 (1u << 29)
00091  #define BIT30 (1u << 30)
00092  #define BIT31 (1u << 31)
00093 #endif
00094 
00095 
00096 /*** Function Macros ***/
00097 #ifndef N_ELEMENTS
00098  #define N_ELEMENTS(X)           (sizeof(X)/sizeof(*(X)))
00099 #endif
00100 
00101 /*** Enums ***/
00102 
00103 /*** TypeDefs ***/
00104 
00105 /*
00106  **************************************************************
00107  * Declarations 
00108  **************************************************************/
00109 /*** Extern ***/
00110 
00111 /*** Globals ***/
00112 
00113 /*** Static Globals ***/
00114 
00115 /*
00116  **************************************************************
00117  * Function Prototypes 
00118  **************************************************************/
00119  /*
00120  ******************************************************************************
00121  *
00122  * Function:          u8fnCheckOddParity()
00123  *
00124  */
00137 uint8_t  u8fnCheckOddParity(uint8_t u8Byte, uint8_t u8ParityPosition);
00138  /*
00139  ******************************************************************************
00140  *
00141  * Function:          u16fnCheckOddParity()
00142  *
00143  */
00156 uint16_t u16fnCheckOddParity(uint16_t u16Word, uint16_t u16ParityPosition);
00157 /*
00158 ******************************************************************************
00159 *
00160 * Function:          u32fnCheckOddParity()
00161 *
00162 */
00175 uint32_t u32fnCheckOddParity(uint32_t u32Word, uint32_t u32ParityPosition);
00176 /*
00177 ******************************************************************************
00178 *
00179 * Function:          u8fnCRC8()
00180 *
00181 */
00190 uint8_t u8fnCRC8(const uint8_t* pu8Buffer, 
00191                  uint8_t u8Poly, 
00192                  uint8_t u8MBitsize,
00193                              uint8_t u8Remainder);
00194 /*
00195  ******************************************************************************
00196  *
00197  * Function:          vfnASCIIByteToHex()
00198  *
00199  */
00210 void vfnASCIIByteToHex(uint8_t* pu8Source, uint8_t* pu8Target, \
00211                        uint16_t u16NOfBytes);
00212 /*
00213  ******************************************************************************
00214  *
00215  * Function:          vfnHexToASCIIMaskToList()
00216  *
00217  */
00230 void vfnHexToASCIIMaskToList(const uint16_t cu16MaskList,
00231                              uint8_t* pau8DataArray,
00232                              uint16_t* pu16Index,
00233                              const uint16_t cu16Mask);
00234 /*
00235  ******************************************************************************
00236  *
00237  * Function:          u8fnUnitASCIIToHex()
00238  *
00239  */
00249 static uint8_t u8fnUnitASCIIToHex(const uint8_t u8ASCIIData);
00250 /*
00251  ******************************************************************************
00252  *
00253  * Function:          vfnHexToASCII()
00254  *
00255  */
00264 void vfnHexToASCII(uint8_t* pu8Source, uint8_t* pu8Target, \
00265                    uint16_t u16NOfBytes);
00266 /*
00267  ******************************************************************************
00268  *
00269  * Function:          u8fnUnitHexToASCII()
00270  *
00271  */
00281 static uint8_t u8fnUnitHexToASCII(uint8_t u8HexData);
00282 /*
00283  ******************************************************************************
00284  *
00285  * Function:          vfnCopyArray()
00286  *
00287  */
00296 void vfnCopyArray(uint8_t* pu8Source, uint8_t* pu8Target, \
00297                   uint16_t u16NOfBytes);
00298 /*
00299  ******************************************************************************
00300  *
00301  * Function:          u16fnMaxU16DeltaInArray()
00302  *
00303  */
00312 uint16_t u16fnMaxU16DeltaInArray(const uint16_t* au16Array, 
00313                                  uint8_t u8ArraySize);
00314 /*
00315  ******************************************************************************
00316  *
00317  * Function:          u32fnDiffAbsoluteValue()
00318  *
00319  */
00327 uint32_t u32fnDiffAbsoluteValue(uint32_t au32Value1, uint32_t au32Value2);
00328 #endif /* _FILENAME_H */